package sv.gob.mh.dgii.model;

// Generated Apr 28, 2010 4:04:55 PM by Hibernate Tools 3.3.0.GA

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * GoCaso generated by hbm2java
 */
@Entity
@Table(name = "GO_CASO", schema = "GESOMISOS")
public class GoCaso implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2020872833855785300L;
	private GoCasoId id;
	private CsPlan csPlan;
	private GoEstado goEstado;
	private GoGestion goGestion;
	private Long cseleccion;
	private RcRuc rcRuc;
	private Date fhIngreso;
	private Date fhEmplazamiento;
	private Date fhEmplazamientoAuto;
	private Date fhCierre;
	private Date fhCierreAuto;
	private Set<GoControlOmiso> goControlOmisos = new HashSet<GoControlOmiso>(0);
	private Set<GoProduccionCaso> goProduccionCasos = new HashSet<GoProduccionCaso>(
			0);
	private Set<GoCasoDomicilio> goCasoDomicilios = new HashSet<GoCasoDomicilio>(
			0);

	private Set<GoCasoDocumento> goCasoDocumentos = new HashSet<GoCasoDocumento>(
			0);
	private Set<GoCasoTecnico> goCasoTecnicos = new HashSet<GoCasoTecnico>(0);

	public GoCaso() {
	}

	public GoCaso(GoCasoId id, GoEstado goEstado, Long cseleccion, RcRuc rcRuc) {
		this.id = id;
		this.goEstado = goEstado;
		this.cseleccion = cseleccion;
		this.rcRuc = rcRuc;
	}

	public GoCaso(GoCasoId id, GoEstado goEstado, RcRuc rcRuc, Long cseleccion,
			Date fhEmplazamiento, Date fhCierre,
			Set<GoCasoDomicilio> goCasoDomicilios,
			Set<GoCasoTecnico> goCasoTecnicos) {
		this.id = id;
		this.goEstado = goEstado;
		this.rcRuc = rcRuc;
		this.cseleccion = cseleccion;
		this.fhEmplazamiento = fhEmplazamiento;
		this.fhCierre = fhCierre;
		this.goCasoDomicilios = goCasoDomicilios;
		this.goCasoTecnicos = goCasoTecnicos;
	}

	/**
	 * @return the id
	 */
	@EmbeddedId
	@AttributeOverrides( {
			@AttributeOverride(name = "ncaso", column = @Column(name = "N_CASO", nullable = false, precision = 18, scale = 0)),
			@AttributeOverride(name = "cplanes", column = @Column(name = "C_PLANES", nullable = false, precision = 3, scale = 0)) })
	public GoCasoId getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(GoCasoId id) {
		this.id = id;
	}

	/**
	 * @return the csPlan
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(insertable = false, name = "C_PLANES", nullable = false, referencedColumnName = "C_PLANES", updatable = false)
	public CsPlan getCsPlan() {
		return csPlan;
	}

	/**
	 * @param csPlan
	 *            the csPlan to set
	 */
	public void setCsPlan(CsPlan csPlan) {
		this.csPlan = csPlan;
	}

	/**
	 * @return the goEstado
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_ESTADO", nullable = false)
	public GoEstado getGoEstado() {
		return goEstado;
	}

	/**
	 * @param goEstado
	 *            the goEstado to set
	 */
	public void setGoEstado(GoEstado goEstado) {
		this.goEstado = goEstado;
	}

	/**
	 * @return the goGestion
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_GESTION")
	public GoGestion getGoGestion() {
		return goGestion;
	}

	/**
	 * @param goGestion the goGestion to set
	 */
	public void setGoGestion(GoGestion goGestion) {
		this.goGestion = goGestion;
	}

	/**
	 * @return the cseleccion
	 */
	@Column(name = "C_SELECCION", nullable = false, precision = 15, scale = 0)
	public Long getCseleccion() {
		return cseleccion;
	}

	/**
	 * @param cseleccion
	 *            the cseleccion to set
	 */
	public void setCseleccion(Long cseleccion) {
		this.cseleccion = cseleccion;
	}

	/**
	 * @return the rcRuc
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "NIT", nullable = false)
	public RcRuc getRcRuc() {
		return rcRuc;
	}

	/**
	 * @param rcRuc
	 *            the rcRuc to set
	 */
	public void setRcRuc(RcRuc rcRuc) {
		this.rcRuc = rcRuc;
	}

	/**
	 * @return the fhIngreso
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", length = 7)
	public Date getFhIngreso() {
		return fhIngreso;
	}

	/**
	 * @param fhIngreso
	 *            the fhIngreso to set
	 */
	public void setFhIngreso(Date fhIngreso) {
		this.fhIngreso = fhIngreso;
	}

	/**
	 * @return the fhEmplazamiento
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_EMPLAZAMIENTO", length = 7)
	public Date getFhEmplazamiento() {
		return fhEmplazamiento;
	}

	/**
	 * @param fhEmplazamiento
	 *            the fhEmplazamiento to set
	 */
	public void setFhEmplazamiento(Date fhEmplazamiento) {
		this.fhEmplazamiento = fhEmplazamiento;
	}

	/**
	 * @return the fhEmplazamientoAuto
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_EMPLAZAMIENTO_AUTO", length = 7)
	public Date getFhEmplazamientoAuto() {
		return fhEmplazamientoAuto;
	}

	/**
	 * @param fhEmplazamientoAuto
	 *            the fhEmplazamientoAuto to set
	 */
	public void setFhEmplazamientoAuto(Date fhEmplazamientoAuto) {
		this.fhEmplazamientoAuto = fhEmplazamientoAuto;
	}

	/**
	 * @return the fhCierre
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_CIERRE", length = 7)
	public Date getFhCierre() {
		return fhCierre;
	}

	/**
	 * @param fhCierre
	 *            the fhCierre to set
	 */
	public void setFhCierre(Date fhCierre) {
		this.fhCierre = fhCierre;
	}

	/**
	 * @return the fhCierreAuto
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_CIERRE_AUTO", length = 7)
	public Date getFhCierreAuto() {
		return fhCierreAuto;
	}

	/**
	 * @param fhCierreAuto
	 *            the fhCierreAuto to set
	 */
	public void setFhCierreAuto(Date fhCierreAuto) {
		this.fhCierreAuto = fhCierreAuto;
	}

	/**
	 * 
	 * @return the goControlOmisos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCaso")
	public Set<GoControlOmiso> getGoControlOmisos() {
		return this.goControlOmisos;
	}

	/**
	 * 
	 * @param goControlOmisos
	 *            the goControlOmisos to set
	 */
	public void setGoControlOmisos(Set<GoControlOmiso> goControlOmisos) {
		this.goControlOmisos = goControlOmisos;
	}

	/**
	 * 
	 * @return the goProduccionCasos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCaso")
	public Set<GoProduccionCaso> getGoProduccionCasos() {
		return this.goProduccionCasos;
	}

	/**
	 * 
	 * @param goProduccionCasos
	 *            the goProduccionCasos to set
	 */
	public void setGoProduccionCasos(Set<GoProduccionCaso> goProduccionCasos) {
		this.goProduccionCasos = goProduccionCasos;
	}

	/**
	 * 
	 * @return the goCasoTecnicos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCaso")
	public Set<GoCasoTecnico> getGoCasoTecnicos() {
		return this.goCasoTecnicos;
	}

	/**
	 * 
	 * @param goCasoTecnicos
	 *            the goCasoTecnicos to set
	 */
	public void setGoCasoTecnicos(Set<GoCasoTecnico> goCasoTecnicos) {
		this.goCasoTecnicos = goCasoTecnicos;
	}

	/**
	 * 
	 * @return the goCasoDocumentos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCaso")
	public Set<GoCasoDocumento> getGoCasoDocumentos() {
		return this.goCasoDocumentos;
	}

	/**
	 * 
	 * @param goCasoDocumentos
	 *            the goCasoDocumentos to set
	 */
	public void setGoCasoDocumentos(Set<GoCasoDocumento> goCasoDocumentos) {
		this.goCasoDocumentos = goCasoDocumentos;
	}

	/**
	 * 
	 * @return the goCasoDomicilios
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCaso")
	public Set<GoCasoDomicilio> getGoCasoDomicilios() {
		return this.goCasoDomicilios;
	}

	/**
	 * 
	 * @param goCasoDomicilios
	 *            the goCasoDomicilios to set
	 */
	public void setGoCasoDomicilios(Set<GoCasoDomicilio> goCasoDomicilios) {
		this.goCasoDomicilios = goCasoDomicilios;
	}

}
